The chirp modulation method is a modulation method in which the frequency of a signal (chirp) varies linearly over time in a bandwidth of Fs Hz. A chirp having a positive gradient in the frequency-time plane is generally referred to as an up-chirp, for example chirp 1 and chirp 2 on FIG. 1. A chirp having a negative gradient in the frequency-time plane is generally referred to as a down-chirp, for example chirp 3 on FIG. 1.
A chirp can be represented by a sequence of N samples. One or more identical contiguous chirps can form a symbol that represents a data value to be communicated. A chirp can be represented mathematically as:C(g,p)=ejπg(n−fn(p))(n+1−fn(p))/N  (equation 1)where g is the gradient of the chirp, N is the number of samples in the sequence, n is a sample in the sequence, p is the symbol's value, fn(p) is a function that encodes p onto the received chirp, which implicitly may also be a function of g, n, N and other constants, and C is the received chirp sequence, which is normally evaluated for all integer values of n from 0 to N−1 in order. The number of valid values of p is the symbol set size, which is nominally N. However, the symbol set size can be more or less than N depending on the quality of the link. The value of g can have any value greater than 0 and less than N. Preferably, g is an integer between 1 and N−1. Due to the modular nature of this expression negative gradients are obtained from N−1 backwards. Hence, N−2 is equivalent to a negative gradient of −2. Where there are more than one identical contiguous chirps in a symbol, each chirp individually conveys the same value which is the symbol value of the symbol.
Chirp 1 in FIG. 1 has a starting frequency of −Fs/2 and a gradient of 1. It increases linearly in frequency over a period of N samples at a sample rate of Fs to reach a frequency close to +Fs/2. Since this is a complex sampled system +Fs/2 is the same as −Fs/2. Multiple chirps are usually contiguous but may start with a different frequency. The signal phase is typically made continuous throughout a sequence of chirps. In other words, after the signal has reached +Fs/2 at n=N−1, the next symbol starts with n=0 again. FIG. 1 illustrates an example in which two consecutive chirps have the same symbol value, whereas the third chirp is different. An apparent discontinuity in frequency between chirp 1 and chirp 2 occurs at n=N.
Chirp 4 in FIG. 2 has a gradient of 2 and a starting frequency of −Fs/2. Because it has double the gradient of the chirps of FIG. 1, it increases linearly in frequency to +Fs/2 in half the number of samples that the chirps in FIG. 1 do, i.e. it reaches close to +Fs/2 after close to N/2 samples. The chirp then wraps around in frequency. Since this is a sampled system, these frequency wraps are in effect continuous and have continuous phase. The chirp repeats the frequency sweep from −Fs/2 to +Fs/2 between samples N/2 and N.
The chirps also have continuous frequency and phase from one end of the chirp to the other. A cyclic shift of the samples that make up a chirp creates another valid chirp.
In a typical receiver configured to receive chirp signals, one or more correlators are used to correlate the received chirp with reference correlating chirps. The received chirp correlates strongly with a reference correlating chirp having the same gradient and symbol value, and weakly with all other chirps. Typically, the expected gradient of a received chirp is known to the receiver. For example, the receiver may be expecting a known sequence of chirps with known gradients as part of a synchronisation process.
In a conventional chirp receiver where the gradient of a received chirp signal is known to the receiver, a programmable correlator is used to correlate the received chirp with the expected reference correlating chirp. The reference and received chirp each comprise N samples, which could be in the order of hundreds or thousands of samples. The reference correlating chirp is regenerated and reloaded into the programmable correlator's internal registers every time there is a change in the chirp signal's gradient, which could be every chirp. This requires a lot of additional cycles in generating and programming the correlator, with an adverse affect on power consumption. Since the reference must be correlated against the received chirp in all N circularly shifted positions, it must work quickly to be useful in a real time system. In a typical low power solution, the correlator comprises a dedicated multiplier for every value in the correlator reference. Since both inputs to each multiplier are unknown to the hardware synthesis tool when the gates are created, a full multiplier must be instantiated, which could amount to many thousands of silicon gates. Each of the N multipliers are typically used N times for each received chirp. Hence, there is an N-squared impact on the power consumption. Hence, this solution is expensive in silicon area and uses a lot of power. This is particularly problematic if the receiver is battery powered.
Thus, there is a need for an improved method of receiving chirp signals having gradients known to the receiver, which requires fewer silicon gates and uses less power than a programmable correlator which holds the reference chirp using internal registers.